/-app ...
/-app/layout
/-app/loaded
/-app/loadedUnmanaged
/-app/tree
Application.ts
ApplicationOld.ts
earlyinit.js
format.ts
lateinit.js
sampleData.d.ts
sampleData.js
/-core
/-headers
/-imports
/-io
/-managed
/-typings
/-unmanaged
pe.html
pe.ts
1
module pe.app {
2
 
3
  export class ApplicationOld {
4
 
5
    title = ko.observable('demo...');
6
    peFileHeaders = ko.observable<headers.PEFileHeaders>(null);
7
    managed = ko.observable<AssemblyNode>(null);
8
 
9
    /** Progress from 0 to 1. Where 1 means reading complete, no progress bar should be displayed.  */
10
    readingProgress = ko.observable(1);
11
 
12
    private _realFileLoaded = false;
13
 
14
    constructor(
15
      private _host: HTMLElement,
16
      private _sampleData = typeof sampleData === 'undefined' ? null : sampleData) {
17
      if (sampleData) {
18
        var arrayBuffer = sampleData();
19
        this._loadArrayBuffer(true, 'sample.exe', arrayBuffer);
20
      }
21
      else {
22
        this._clearContent();
23
      }
24
    }
25
 
26
    loadFromInput(files: FileList) {
27
      if (this._realFileLoaded) {
28
        alert('real file already loaded');
29
        return;
30
      }
31
 
32
      var fileReader = new FileReader();
33
      fileReader.onerror = (error) => {
34
        alert('read ' + error.message);
35
      };
36
      fileReader.onloadend = () => {
37
        if (fileReader.readyState !== 2) {
38
          alert('read ' + fileReader.readyState + fileReader.error);
39
          return;
40
        }
41
 
42
        try {
43
          var resultArrayBuffer: ArrayBuffer;
44
          resultArrayBuffer = fileReader.result;
45
          //alert('loaded: ' + resultArrayBuffer.byteLength);
46
          this._loadArrayBuffer(false, files[0].name, resultArrayBuffer);
47
        }
48
        catch (error) {
49
          alert('parsing ' + error.message + ' ' + error.stack);
50
        }
51
      };
52
 
53
      fileReader.readAsArrayBuffer(files[0]);
54
    }
55
 
56
 
57
    private _loadArrayBuffer(sample: boolean, filename: string, arrayBuffer: ArrayBuffer) {
58